'use strict';

const chalk = require('chalk');
const fs = require('fs');
const exec = require('shelljs').exec;

gitInit();
gitCommit(1);
gitCommit(2);
gitCheckToBranch('daily1');
gitCommit(3);
gitCommit(4);
gitToBranch('master');
gitCommit(5);
gitCommit(6);
gitCheckToBranch('daily2');
gitCommit(7);
gitCommit(8);
gitToBranch('master');
gitCommit(9);
gitCommit(10);
gitMerge('daily1');
gitCommit(11);
gitCommit(12);
gitMerge('daily2');
gitCommit(13);
gitCommit(14);

function gitInit(){
	exec(`rm -rf .git`);
	exec('git init');
}
function changeContentSync(){
	fs.writeFileSync('./test.js', (new Date()).getTime()+'', 'utf-8');
}
function gitCommit(flag){
	changeContentSync();
	exec('git add .', {cwd: process.cwd()});
	exec(`git commit -m "shell commit: ${flag}"`, {cwd: process.cwd()});
}
function gitCheckToBranch(branchName){
	exec(`git checkout -b ${branchName}`);
}
function gitToBranch(branchName){
	exec(`git checkout ${branchName}`);
}
function gitMerge(branchName){
	exec(`git merge ${branchName}`);
}